package com.itany.corejava.code07_面向对象.多态;

import java.util.Scanner;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月06日 11:23
 */
/*
 *去宠物店领养宠物, 可以选择三种宠物 1.狗狗 2.猫咪 3.猪猪
 * 宠物Pet存在两个属性:name(姓名)、gender(性别),构造方法，get、set方法
 * 狗狗Dog存在一个自己的属性:age(年龄)，构造方法，get、set方法
 * 猫咪Cat存在一个自己的属性:type(品种)，构造方法，get、set方法
 * 猪猪Pig存在一个自己的属性:hobby(爱好)，构造方法，get、set方法
 * 每一个宠物都有一个show方法, 用于打印对应的宠物信息
 * 通过用户输入不同选项选择对应宠物,打印出对应宠物的信息
 */
public class Pet {
    private String name;
    private String gender;

    public Pet(String name, String gender) {
        this.name = name;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
    public void show(){
        System.out.println("我是一只宠物，我的名字叫:"+name+",性别是:"+gender);
    }
}
class Dog extends Pet{
    private int age;

    public Dog(String name, String gender, int age) {
        super(name, gender);
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public void show(){
        System.out.println("我是一只狗狗，我的名字叫:"+super.getName()+",性别是:"+super.getGender()+"，年龄是:"+age);
    }



}
class Cat extends Pet{
    private String type;

    public Cat(String name, String gender, String type) {
        super(name, gender);
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
    public void show(){
        System.out.println("我是一只猫猫，我的名字叫:"+super.getName()+",性别是:"+super.getGender()+"，种类是:"+type);
    }
}
class Pig extends Pet{
    private String hobby;

    public Pig(String name, String gender, String hobby) {
        super(name, gender);
        this.hobby = hobby;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
    public void show(){
        System.out.println("我是一只猪猪，我的名字叫:"+super.getName()+",性别是:"+super.getGender()+"，爱好是:"+hobby);
    }
}

class TestPet{
    public static void main(String[] args) {
        showMenu();

    }

    public static void showMenu(){
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入您要领取的宠物类型(1.狗 2.猫 3.猪):");
        int choice=sc.nextInt();
        Pet pet=null;
        switch(choice){
            case 1:
                pet=new Dog("阿黄","公",2);
                pet.show();
                break;
            case 2:
                pet=new Cat("咪咪","母","田园猫");
                pet.show();
                break;
            case 3:
                pet=new Pig("八戒","公","吃");
                pet.show();
                break;
            default:
                System.out.println("您输入的有误，请重新输入");
                showMenu();

        }
    }
}